TOP

SQL Stored Procedures pentru SQL Server

YouLibreCalc for Excel logo

Ce este Stored Procedure?

Stored Procedure (Procedura stocată) este un cod SQL pregătit care poate fi salvat, astfel încât codul să poată fi folosit din nou și din nou.

Deci, dacă aveți o interogare SQL pe care o scrieți din nou și din nou, salvați-o ca procedură stocată și apoi apelați-o pentru a o executa.

De asemenea, puteți transmite parametri unei proceduri stocate, astfel încât procedura stocată să poată acționa asupra valorilor parametrilor transmise.


Stored Procedure Sintaxă

CREATE PROCEDURE procedure_name
AS 
sql_statement
GO

Se execută Stored Procedure

EXEC procedure_name

Baza de date demonstrativă

Următorul este un exemplu din tabelul „Customers” („Clienți”) din baza de date „Northwind”:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

Stored Procedure Exemplu

Următoarea interogare SQL creează o procedură stocată numită „SelectAllCustomers” care selectează toate înregistrările din tabelul Customers:

CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO

Să executăm procedura stocată de mai sus, după cum urmează:

EXEC SelectAllCustomers

Stored Procedure cu un parametru

Următoarea interogare SQL creează o procedură stocată care selectează clienții dintr-un anumit oraș din tabelul Customers:

CREATE PROCEDURE SelectAllCustomers @City nvarchar(30)
AS
SELECT * FROM Customers WHERE City = @City
GO

Să executăm procedura stocată de mai sus, după cum urmează:

EXEC SelectAllCustomers @City = 'London'

Stored Procedure cu mulți parametri

Este foarte ușor să configurați mai mulți parametri, și anume listați fiecare parametru și tip de date separate prin virgulă, așa cum se arată mai jos.

Următoarea instrucțiune SQL creează o procedură stocată care selectează clienții dintr-un anumit oraș cu un anumit cod poștal din tabelul Clienți:

CREATE PROCEDURE SelectAllCustomers @City nvarchar(30), @PostalCode nvarchar(10)
AS
SELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCode
GO

Să executăm procedura stocată de mai sus, după cum urmează:

EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP'